草庐IT

c: 程序执行问题

全部标签

ruby - 传递给 `instance_exec` 时如何执行 proc

问题的灵感来自thisone.Proc::new有一个选项可以在方法内部没有block的情况下调用:Proc::newmaybecalledwithoutablockonlywithinamethodwithanattachedblock,inwhichcasethatblockisconvertedtotheProcobject.当proc/lambda实例作为代码块传递时,将创建Proc的新实例:Proc.singleton_class.prepend(Module.newdodefnew(*args,&cb)puts"PROC#{[block_given?,cb,*args].i

ruby - Jruby Gems-in-a-jar 问题

只要我乐于坚持使用标准的jruby库,一切都很好。如jruby网站上所述,我只是将jruby-complete.jar库复制到远程计算机并在运行时将其包含在类路径中。我启动了我的编译脚本,它运行起来了:太棒了!当我需要一些其他库(通常是ruby​​gems)来运行我的脚本时,问题就开始了。我知道像rawr这样很酷的东西,我成功地测试了它,可以将你需要的所有东西放在一个包中。然而,这不是我正在寻找的解决方案:我将有许多独立运行的小脚本,我不希望它们中的每一个都增长到至少10MB,只是因为我疯狂地在每个脚本中包含了jruby-complete.jar他们。我想要的是为我需要使用的每个库编译

ruby-on-rails - 如何在 Rails3 应用程序中的所有其他 Controller before_filters 之后在 gem 中附加 before_filter?

有一个gem,它附加一个before_filter到Rails应用:classRailtie这是应用程序中的一些Controller:classDesktopsController现在的问题是,来自gem的before_filter被放入来自DesktopsController的before_filter之前的过滤器链中:DesktopsController._process_action_callbacks.select{|c|c.kind==:before}.collect{|filter|filter.filter}=>[[0]:set_locale,[1]:set_langua

ruby - 如何在另一个 Sinatra 应用程序中安装 Sinatra 应用程序?

我正在尝试编写一个将组件组合在一起的Sinatra应用程序(有点像Controller)。所以对于“博客”相关的东西,我想要一个名为Blog的应用程序安装在/blog上。Blog应用程序中包含的所有路由都与它的挂载路径相关,因此我可以简单地定义一个index路由,而不必在路由中指定挂载路径。我最初是通过使用config.ru文件并将路由映射到不同的应用程序来处理这个问题的。我遇到的问题是,我使用了各种需要包含在所有应用程序中的sinatragem/扩展/助手,所以有很多重复代码。如何将一个sinatra应用程序安装到另一个应用程序中,以便应用程序中定义的路由与应用程序的安装位置相关?如

ruby - 从包含的文件中,如何获取执行包含的文件的文件名?

对于问题标题措辞不佳的道歉-不知道如何把它说得更好!在下面的代码中,当我执行rubybar.rb时,如何让它输出bar.rb,而不是foo.rb?在foo.rb中:moduleFoodeffilename__FILE__endend在bar.rb中:require_relative'foo'includeFooputsfilename#outputs'foo.rb'这是一个库函数,每次执行一些代码时,都会记录该代码的位置(和gitref)。 最佳答案 你的问题促使我打开Ruby解释器源代码,看看__FILE__是如何工作的。答案很有

ruby-on-rails - Rails 应用程序的 Mailgun

目前我正在努力将Mailgun实现到我的Rails应用程序中,但我似乎对最佳方法感到困惑。我已经实现的方法是设置区域,添加gemfile,然后通过ActiveJob设置后台处理器。由于不确定这是否是最佳方式,我尚未设置后台处理器。我看到其他资源说我应该简单地使用Heroku插件,然后使用额外的、最少的编码。我还想提一下,我有Devise设置,所以在典型情况下我不需要发送电子邮件。如您所见,此时我很迷茫,只是想了解哪种方法最好。如果您碰巧了解自己或有好的资源可以使用,请告诉我=)旁注:一路上我还被告知“不要从ActiveRecord回调中触发电子邮件发送-从Controller中执行。”

ruby - 将 ORM 添加到 Sinatra 应用程序;有没有问题少性能好的理想的?

我希望将ORM添加到我现有的Sinatra应用程序中。尽管我还没有尝试过ActiveRecord,但我了解了Datamapper、Sequel和ActiveRecord。Datamapper看起来很简单,但我一直面临“WhatORMtouseinoneprocessmultipledbconnectionssinatraapplication?”中讨论的问题,但无法理解解决方案和根本原因。对于选择合适的、以性能为导向的ORM有什么建议吗? 最佳答案 Sequel足够快,但功能较少,而ActiveRecord有许多很酷的功能,导致一些

ruby - 确定程序是否在 Debug模式下运行

我使用RubyMine编写和调试我的Ruby2.0代码。它为此目的使用ruby​​-debug-ide。我想知道程序是否在Debug模式下运行。我知道有Ruby$DEBUG全局变量,但据我所知,ruby-debug-ide并没有改变它,因为它没有使用-druby标志。如果我使用Rubymine调试我的文件,执行的命令如下所示:/home/user/.rvm/rubies/ruby-2.0.0-p353/bin/ruby-eat_exit{sleep(1)};$stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)/home/user

ruby - 如何让minitest在失败时停止执行?

我使用Minitest作为我的功能测试的运行程序,使用Selenium作为驱动程序来运行浏览器。每个测试都建模为MiniTest::Unit::TestCase。Minitest在完成所有测试时报告执行摘要。遇到的异常也会在执行结束时打印出来。当由于执行上下文丢失而导致意外失败时,我发现很难调试。我遇到的异常不是确定性的。有没有办法让Minitestrunner在出现异常或断言失败时停止执行测试?我正在使用minitest(2.11.2)和ruby​​1.9.2p290(2011-07-09)[i386-mingw32] 最佳答案

ruby-on-rails - 将现有的 Rails 应用程序导入 RubyMine 项目

我目前在尝试测试RubyMine时遇到了不必要的麻烦。我最大的问题是我无法找到一种方法将我系统上的现有Rails应用程序转换为官方RubyMine应用程序,以便我可以体验RubyMine的所有功能。我唯一可用的选项是创建一个新的RubyMinerails项目,从git远程拉取一个rails项目(不起作用),或者打开以前的rails目录(它允许您编辑rails代码,但它无法将此目录识别为RubyMine项目,因此我无法充分利用RubyMine对rails的所有好处)。请帮帮我,RubyMine看起来很有前途顺便说一句,这是RubyMine4。 最佳答案